A terminal service (TS) system allows a TS client device to interact with an application being run on a remote TS server device. A user who interacts with the application receives generally the same user experience that would be provided if the application were implemented locally by the TS client device. Implementing the application on the TS server device affords a number of benefits. For instance, it may be easier to administer an application that is maintained at a central location.
A TS session may involve sending data from the TS client device to the TS server device, or vice versa. It is generally desirable to transmit this data with high quality and low latency. Many network environments (such as the Internet), however, exhibit variable amounts of available bandwidth. In view of this complication, it is a challenging task to determine how best to send data within a TS system.